home *** CD-ROM | disk | FTP | other *** search
/ The Sunday Times: The Month 2003 September / The Sunday Times - The Month 2003-09.iso / mac / The Month SEP 03 / assets / panels / help.swf / scripts / DefineSprite_60 / frame_1 / DoAction.as
Text File  |  2003-08-13  |  2KB  |  104 lines

  1. refresh = function()
  2. {
  3.    if(SCROLLHEIGHT == null)
  4.    {
  5.       SCROLLHEIGHT = 350;
  6.    }
  7.    mScrollTrack._height = SCROLLHEIGHT - 22;
  8.    mArrow_down._y = SCROLLHEIGHT - 11;
  9.    maxTargetPos = 0;
  10.    targetHeight = target._height + 20;
  11.    minTargetPos = maxTargetPos - targetHeight + SCROLLHEIGHT;
  12.    targetRange = Math.abs(maxTargetPos - minTargetPos);
  13.    if(targetHeight < SCROLLHEIGHT)
  14.    {
  15.       _visible = 0;
  16.    }
  17.    else
  18.    {
  19.       _visible = 1;
  20.    }
  21.    scrolling = dragging = 0;
  22.    var scrollRatio = SCROLLHEIGHT / targetHeight;
  23.    if(scrollRatio < 1)
  24.    {
  25.       mScroller._height = scrollRatio * mScrollTrack._height;
  26.       mScroller._visible = 1;
  27.    }
  28.    else
  29.    {
  30.       mScroller._visible = 0;
  31.    }
  32.    minScrollerPos = mScrollTrack._y;
  33.    maxScrollerPos = minScrollerPos + mScrollTrack._height - mScroller._height;
  34.    scrollerRange = Math.abs(mScrollTrack._height - mScroller._height);
  35.    SCROLLSPEED = 5;
  36.    scrollerColor = new Color(mScroller);
  37.    updateScroller();
  38. };
  39. mArrow_up.onPress = function()
  40. {
  41.    onEnterFrame = scrollUp;
  42. };
  43. mArrow_down.onPress = function()
  44. {
  45.    onEnterFrame = scrollDown;
  46. };
  47. mScroller.onPress = function()
  48. {
  49.    this.startDrag(0,this._x,minScrollerPos,this._x,maxScrollerPos);
  50.    this.onMouseMove = this._parent.drag;
  51. };
  52. mScroller.onRollOver = function()
  53. {
  54.    scrollerColor.setRGB(6443289);
  55. };
  56. mScroller.onRollOut = function()
  57. {
  58.    scrollerColor.setRGB(12170390);
  59. };
  60. this.onMouseUp = function()
  61. {
  62.    onEnterFrame = null;
  63.    onMouseMove = null;
  64.    mScroller.stopDrag();
  65.    updateScroller();
  66. };
  67. scrollUp = function()
  68. {
  69.    if(target._y < maxTargetPos)
  70.    {
  71.       target._y += SCROLLSPEED;
  72.    }
  73.    if(target._y > maxTargetPos)
  74.    {
  75.       target._y = maxTargetPos;
  76.    }
  77.    updateScroller();
  78. };
  79. scrollDown = function()
  80. {
  81.    if(target._y > minTargetPos)
  82.    {
  83.       target._y -= SCROLLSPEED;
  84.    }
  85.    if(target._y < minTargetPos)
  86.    {
  87.       target._y = minTargetPos;
  88.    }
  89.    updateScroller();
  90. };
  91. drag = function()
  92. {
  93.    var draggedAmount = mScroller._y - minScrollerPos;
  94.    var scrollAmount = draggedAmount / scrollerRange;
  95.    target._y = maxTargetPos - scrollAmount * targetRange;
  96. };
  97. updateScroller = function()
  98. {
  99.    var targetScrolledAmount = maxTargetPos - target._y;
  100.    var ratioScrolled = targetScrolledAmount / targetRange;
  101.    mScroller._y = minScrollerPos + ratioScrolled * scrollerRange;
  102. };
  103. refresh();
  104.